<?php

namespace App\Models\Common\Area\Repositories\Interfaces;

use App\Models\Common\Area\Area;
use Illuminate\Support\Collection;

interface AreaRepositoryInterface
{

    public function addArea(array $data): Area;

    public function updateArea(Area $area, array $data): bool;

    public function findByCode(string $adcode): ?Area;

    public function findByName(string $name): ?Area;

    public function findCityByCode(string $citycode): ?Area;

    public function fuzzyFind(string $name, string|int $level): ?Area;

    public function listProvinces(bool $refresh): Collection;
}